OpenClaw 与 Kubernetes 对话式运维实践
OpenClaw 与 Kubernetes 对话式运维实践
背景
对于 运维 工程师而言,凌晨三点的告警电话已经成为一种常态。当集群出现问题需要紧急处理时,整个流程通常是这样的:被电话叫醒、打开电脑、连接 VPN、切换集群、查看异常 Pod 的日志和事件、分析问题、制定方案、执行命令。这一套流程看似标准,但实际操作中存在不少问题。
首先是精神层面的消耗。从休息状态突然切换到应急模式,需要保持高度紧张的注意力。其次是操作复杂度高,虽然可以通过 PaaS 平台进行封装,但 kubectl 命令依然繁多,不同场景需要不同的参数组合。再者是协作上的断层,告警信息通常在 IM 工具中推送,但排查和操作需要在终端或专门的运维平台进行,信息流转不够顺畅。最后是网络连接的限制,如果只有手机或者电脑无法连接 VPN,就只能在原地等待或者寻求他人帮助。
基于这些痛点,一个自然的想法是:既然应急响应时最顺手的是手机,为什么不能直接通过 IM 工具来管理 Kubernetes 集群?理想的状态应该是这样的:告警在 IM 中弹出,点击消息中的按钮直接查看日志,回复简单的命令就能执行操作,整个过程都在对话中自然完成,团队成员也能实时看到处理进展。
OpenClaw 正是为这种场景而生的工具。它连接了 IM 对话界面和 Kubernetes 集群,在中间负责接收指令、操作集群,让运维工程师可以直接在聊天工具中完成对集群的全流程管理。
OpenClaw 概述
OpenClaw 是一个基于 TypeScript 开发的 CLI 与网关一体化工具,可以在本地或服务器上运行的 AI 智能体管理平台。它能够运行和管理各类 AI Agent,让智能体主动调用工具完成各类任务流程,成为个人 AI 助理或数字员工。
核心概念
Agent(智能体):相当于个人助理或数字员工,拥有大模型作为核心大脑,能够独立思考、调用工具、自动执行任务。在本次实践中,选用了 Kimi 作为 Agent 的实现。
Gateway(网关):OpenClaw 的总调度中心,负责接收请求、协调各个模块的工作,确保用户和智能体之间能够稳定地收发消息。
Channel(渠道):OpenClaw 与外部聊天工具连接的桥梁,支持飞书、WhatsApp、Telegram 等多种即时通讯工具。用户在这里与 AI Agent 进行交流、下发任务。
Tool(工具):智能体完成任务的基础能力单元,比如控制浏览器、读写文件、执行命令等。工具本身是原子化的能力,类似于厨师的厨具。
Skill(技能):工具组合的使用说明书,它告诉智能体如何使用工具来完成复杂的任务。技能将多个工具按照特定流程组合,类似于厨师的菜谱。
整体架构
本次实践的架构相对简洁。Kimi 作为 AI Agent 提供智能决策能力,飞书作为 Channel 提供用户交互入口,OpenClaw 作为 Gateway 在中间进行协调调度,最终实现对 Kubernetes 集群的管理。整个流程实现了从自然语言输入到实际集群操作的完整链路。
部署实施
环境准备
在开始部署之前,需要确保以下环境已经就绪:
首先是 Kubernetes 集群,本次实践使用的是 v1.32.0 版本,但实际上任意可以正常访问的 K8s 集群均可。其次是 Docker 环境,本次实践使用 24.0.9 版本,只要确保 Docker 服务正常运行即可。
Kimi 密钥配置
由于本次实践选用 Kimi 作为 AI Agent,需要提前完成密钥配置。具体步骤如下:
第一步,进入 Kimi 会员权益页面购买套餐。Kimi 提供不同级别的订阅服务,根据实际需求选择即可。
第二步,进入 Kimi 控制台创建 API key。在控制台页面可以创建多个 API key,每个 key 都有对应的 API ID 和 Key 值。这些信息需要妥善保存,后续部署 OpenClaw 时会用到。
OpenClaw 安装
为了避免环境依赖问题,采用 Docker 一键部署的方式。执行以下命令:
docker run -d --name openclaw \
-p 18789:18789 \
-v ~/.openclaw:/home/node/.openclaw \
--restart=always \
alpine/openclaw:2026.3.2这里有两个关键配置需要注意。端口映射方面,将容器的 18789 端口映射到宿主机,方便后续访问。数据持久化方面,把宿主机的 ~/.openclaw 目录挂载到容器的 /home/node/.openclaw,这样可以在本地快速编辑 OpenClaw 配置文件,无需进入容器内部修改。
安装完成后,执行 docker ps | grep openclaw 命令验证部署状态,显示 Up 且 healthy 即表示成功。
接下来进入容器执行配置向导。首先执行 docker exec -it openclaw bash 进入容器,然后执行 openclaw onboard 启动配置向导。按照提示逐步选择:
- Onboarding mode 选择 QuickStart
- Config handling 选择 Use existing values
- Model/auth provider 选择 Moonshot AI (Kimi K2.5)
- Moonshot AI auth method 选择 Kimi Code API key (subscription)
- API key 提供方式选择 Paste API key now,然后输入之前准备的 Kimi API key
- Default model 选择 Keep current (kimi-coding/k2p5)
- Select channel 选择 Skip for now,飞书渠道后续单独配置
- Configure skills 选择 No
- Enable hooks 选择 Skip for now
- Hatch bot 选择 Hatch in TUI (recommended)
配置完成后,OpenClaw 会自动打开对话窗口,也可以通过 openclaw tui 命令手动唤起。
如果希望通过浏览器访问 OpenClaw,需要修改配置文件
~/.openclaw/openclaw.json。将 .gateway.bind 字段设置为 lan,将 .gateway.controlUi.allowedOrigins 字段设置为 ["*"]。修改完成后重启容器,即可通过 http://127.0.0.1:18789 访问。
如果遇到无法正常对话的情况,使用
openclaw devices list 命令查看是否有待审批的设备,然后执行 openclaw devices approve <Request ID> 完成审批。
飞书 Channel 配置
创建飞书应用
第一步,登录飞书开放平台的开发者后台,地址是 https://open.feishu.cn/app。点击"创建企业自建应用",输入应用名称和应用描述,然后点击创建。应用名称可以设置为 OpenClaw-K8s管理助手,方便后续识别。
第二步,创建成功后自动进入应用详情页面,记录两个核心信息:APP ID 和 APP Secret。这两个信息后续配置需要使用,需要妥善保管,切勿泄露。
配置机器人权限
在应用详情页左侧菜单栏中点击"添加应用能力",选择"机器人"并完成添加。
然后进入"权限管理"页面,点击"开通权限"。
权限配置建议按需开通,避免全量开通导致安全风险。但为了快速测试,本次实践临时选择了全部权限。
完成权限配置后,点击"版本管理与发布",创建版本并发布应用。
发布完成后,可以在飞书"工作台"中找到应用机器人。
在 OpenClaw 中配置飞书
进入 OpenClaw 容器,执行以下命令完成飞书渠道的配置:
openclaw config set channels.feishu.enabled true
openclaw config set channels.feishu.appId "机器人APP ID"
openclaw config set channels.feishu.appSecret "机器人APP Secret"配置完成后,退出容器并在宿主机中重启 OpenClaw 容器,让配置生效。
订阅事件与完成绑定
在飞书应用详情页找到"事件与回调",订阅方式选择"长链接",添加"接收消息"事件。
保存配置后,重新发布应用版本确保事件订阅生效。
在飞书中找到机器人并发送任意消息,OpenClaw 会返回一串配对码。
然后在 OpenClaw 容器终端执行以下命令完成绑定:
openclaw pairing approve feishu R67WNGTF注意将示例中的配对码替换为实际生成的配对码。执行成功后,飞书就与 OpenClaw 实现了消息互通。
Kubernetes 集群管理配置
这是实现飞书对话式管理 K8s 集群的最后一步,配置完成后就可以在飞书聊天框中直接下发指令,完成对 K8s 集群的各类管理操作。
挂载 K8s 配置
管理 K8s 集群依赖两个核心组件:kubectl 和 kubeconfig。kubectl 是 K8s 官方 CLI 工具,用于执行集群操作指令;kubeconfig 是访问 K8s 集群的身份配置文件,包含集群地址、认证信息等。
需要将宿主机的这两个文件或工具挂载到容器内,让 OpenClaw 具备操作 K8s 的能力。本次实践中,宿主机的关键路径如下:kubectl 路径为 /usr/local/bin/kubectl,kubeconfig 路径为 ~/.kube/config。实际部署时请根据自身环境替换。
首先停止并删除旧容器,然后执行新的启动命令:
docker stop openclaw && docker rm openclaw
docker run -d --name openclaw \
-p 18789:18789 \
-v ~/.kube/config:/home/node/.kube/config \
-v ~/.openclaw:/home/node/.openclaw \
-v /usr/local/bin/kubectl:/usr/local/bin/kubectl \
--restart=always \
alpine/openclaw:2026.3.2开通 K8s 操作权限
OpenClaw 在运行时默认无法读写文件和执行命令,需要开放相应的 Tools 权限。进入 OpenClaw 容器,执行以下命令:
openclaw config set tools.profile full
openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full需要特别注意的是,以上配置会开放最高级别的操作权限,仅适用于本次实践测试。生产环境务必按需精细化配置,比如仅开放 kubectl 相关的执行权限,避免权限过大导致安全风险。
配置完成后,在宿主机重启 OpenClaw 容器使权限配置生效。
实际操作示例
权限配置生效后,即可在飞书机器人聊天框中发送自然语言指令来管理 K8s 集群。
查看集群节点列表:直接发送"查看集群节点列表",OpenClaw 会执行相应的 kubectl 命令并返回结果。
查看特定命名空间下的资源:发送"查看 default 命名空间下的 deploy",OpenClaw 会查询并展示该命名空间下的 Deployment 列表。
通过这种方式,运维工程师无需记忆复杂的 kubectl 命令,也无需在终端中进行操作,只需要用自然语言描述需求,就能完成对集群的日常管理。
实践总结
本次实践完整实现了一套基于 OpenClaw + 飞书 + Kimi + K8s 的对话式运维方案。从 SRE 的实际痛点出发,理解了 OpenClaw 的核心概念,然后一步步完成了 Docker 部署、接入 Kimi 作为智能体、打通飞书作为交互入口、挂载 K8s 配置实现集群管理等关键步骤。
这套方案的价值主要体现在几个方面。首先是降低了运维门槛,让不熟悉复杂命令的人也能参与集群管理。其次是提升了效率,把日常运维工作变成简单的对话交互,大幅缩短了响应时间。再次是更贴合工作习惯,在企业最常用的协同工具里完成工作,无需在多个平台之间切换。最后是具备良好的扩展性,OpenClaw 支持多渠道、多工具、多技能,后续可以接入更多场景。
当然,从测试环境到生产环境,还有很多工作要做。权限控制需要更加精细化,确保只有授权人员才能执行敏感操作。操作审计需要有完整的日志记录,方便事后追溯。技能库需要不断丰富,覆盖更多的运维场景,比如发布上线、故障排查、日志查询、监控告警等。
这套架构展示了一种新的运维方式:让 AI 成为数字员工,让对话成为生产力。随着 AI 能力的不断提升,这种方式会变得越来越自然和高效。
参考资料
- OpenClaw 官方文档:https://docs.openclaw.ai
- OpenClaw GitHub 仓库:https://github.com/openclaw/openclaw
- 飞书开放平台:https://open.feishu.cn
- Kimi 控制台:https://www.kimi.com/code/console
